package leetcode_500;

/**
 *@author 周杨
 *LargestPalindromeProduct_479 产生两个n位数的乘积是回文数的最大值
 *describe:暴力 25%
 *2018年8月31日 下午3:25:10
 */
public class LargestPalindromeProduct_479 {
	public int largestPalindrome(int n) {
	    // 边界处理
	    if(n==1){
	        return 9; // 单位数是回文数
	    }
	    int maxnumber = (int)Math.pow(10,n)-1;

	    for(int i=maxnumber;i>maxnumber/10;i--){ // 保证了数值递减
	        long num = toLong(i);

	        for(long j=maxnumber;j*j>=num;j--){
	            if(num%j==0){ // num已是回文数，只要mod为0就找到了结果
	                return (int)(num%1337);
	            }
	        }
	    }
	    return 0;
	}
	public long toLong(int number){

	    StringBuffer b = new StringBuffer();
	    String str = b.append(number).reverse().toString();

	    return Long.valueOf(number+str);
	}
}
